docker-compose.zookeeper.yml up -d
docker-compose -f docker-compose.redis.yml up -d
using Gateway;
var hostBuilder = Host.CreateDefaultBuilder()
.ConfigureSilkyGatewayDefaults(webHostBuilder => webHostBuilder.UseStartup<Startup>());
await hostBuilder.Build().RunAsync();
namespace Gateway;
public class Startup
{
public void ConfigureService(IServiceCollection services)
{
services.AddSilkyHttpServices()
.AddRouting()
.AddSwaggerDocuments()
.AddMiniProfiler();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseSwaggerDocuments();
app.UseMiniProfiler();
}
app.UseRouting();
app.UseEndpoints(endpoints => { endpoints.MapSilkyRpcServices(); });
}
}
rpc:
token: ypjdYOzNd4FwENJiEARMLWwK0v7QUHPW
registrycenter:
type: Zookeeper
connectionStrings: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183;127.0.0.1:2184,127.0.0.1:2185,127.0.0.1:2186
distributedCache:
redis:
isEnabled: true
configuration: 127.0.0.1:6379,defaultDatabase=0
using Microsoft.Extensions.Hosting;
var hostBuilder = Host.CreateDefaultBuilder().ConfigureSilkyGeneralHostDefaults();
await hostBuilder.Build().RunAsync();
rpc:
token: ypjdYOzNd4FwENJiEARMLWwK0v7QUHPW
port: 2200
registrycenter:
type: Zookeeper
connectionStrings: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183;127.0.0.1:2184,127.0.0.1:2185,127.0.0.1:2186
distributedCache:
redis:
isEnabled: true
configuration: 127.0.0.1:6379,defaultDatabase=0
[ServiceRoute]
public interface IHelloAppService
{
Task<string> SayHi([FromQuery]string name);
}
public class HelloAppService : IHelloAppService
{
public Task<string> SayHi(string name)
{
return Task.FromResult($"Hello {name ?? "World"}");
}
}
Способы вызова сервисов между сервисами
Например, в проекте Silky.Hero в PermissionManager.cs:
public class PermissionManager : IPermissionManager, IScopedDependency
{
private readonly IUserAppService _userAppService;
private readonly IRoleAppService _roleAppService;
public PermissionManager(IUserAppService userAppService,
IRoleAppService roleAppService)
{
_userAppService = userAppService;
_roleAppService = roleAppService;
}
public async Task<ICollection<string>> GetUserRoleNamesAsync(long userId)
{
var userRoleOutput = await _userAppService.GetRolesAsync(userId);
return userRoleOutput.RoleNames;
}
public async Task<ICollection<long>> GetUserRoleIdsAsync(long userId)
{
var userRoleIds = await
``` ```
-in, --infrastr only include basic service orchestration files
类型: bool
默认: false
-e, --env <env> Set dotnet env
类型: string
默认: Development
-m, --module Is it a module project
类型: bool
默认: false
-p:i, --includeinfr Whether to include the basic orchestration service.
类型: bool```
**Пример:**
```pwsh
# 创建网关
> dotnet new silky.app -t gateway -n Silky.Gateway
# 创建业务微服务
> dotnet new silky.app -t generalhost -n Silky.Demo
Вклад можно сделать разными способами. Один из самых простых — обсуждение вопросов (issues). Также можно внести свой вклад через отправку кода с изменениями в виде Pull Request.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )