Menu
🌜
🌞
- 1. 框架介绍
- 2. 注册中心
- 3. 服务Provider
- 4. 网关&监控
- 5. 服务资源监控
- 6. 集群接口文档
- 7. Hello World
- 8. 集成Java
- 9. 进阶指南
- 10. 领域驱动设计
- 11. 事件总线
- 12. 更多
- 13.1 好文章集合

ViperService
#
### 2. 添加Nuget包#
##### 开发者可以根据喜好选择底层dotnet add package Anno.Rpc.Server —version 1.7.0.1dotnet add package Anno.EngineData —version 1.7.0.2
RPC
通讯中间件
目前支持两种Thrift
、Grpc
,推荐Thrift
dotnet add package Anno.Rpc.Server --version 1.7.0.1
为Thrift方式
dotnet add package Anno.Rpc.ClientGrpc --version 1.7.0.1
为Grpc方式
### 3. 配置文件#
##### 提示 一般情况下只用修改 下面两行配置 <!—注册到的目标—> <Ts Ip="127.0.0.1" Port="7010"/> <!— 数据库连接字符串 Mysql—> <add key="ConnStr" value="server=xxxx;"/> ### 4. 程序文件# 正常情况下只需要以下几行代码就可以启动服务宿主程序 using System; using System.Linq; using System.Reflection; using System.Threading; using Anno.Const.Attribute; using Anno.Loader; using Anno.Log; using Autofac; namespace ViperService { using Anno.EngineData; using Anno.Rpc.Server; using System.Collections.Generic; using Anno.Rpc.Storage; class Program { static void Main(string[] args) { if (args.Contains("-help")) { Log.ConsoleWriteLine(@" 启动参数: -p 6659 设置启动端口 -xt 200 设置服务最大线程数 -t 20000 设置超时时间(单位毫秒) -w 1 设置权重 -h 192.168.0.2 设置服务在注册中心的地址 -tr false 设置调用链追踪是否启用"); return; } Bootstrap.StartUp(args, () => { //Anno.Const.SettingService.TraceOnOff = true; var autofac = IocLoader.GetAutoFacContainerBuilder(); autofac.RegisterType(typeof(RpcConnectorImpl)) .As(typeof(IRpcConnector)).SingleInstance(); }); } } } ##### 服务宿主程序可以根据需要开发者自己选择依赖注入中间件 目前支持两种
Viper\ViperService\bin\Debug\net6.0\Anno.config
<?xml version="1.0" encoding="utf-8" ?><configuration><!—0,0 第一位是 工作站,第二位数据中心(所有的 AnnoService 的 两位数不能重复例如不能存在【1,2】【1,2】)可以存在【1,2】【2,1】—><IdWorker>0,0</IdWorker><!—App名称—><AppName>ViperService-01</AppName><!—监听端口—><Port>7011</Port><!—权重—><Weight>1</Weight><!—功能 非Anno.Plugs 加入方式—><FuncName></FuncName><!—忽略的功能 Trace,Logic—><IgnoreFuncName></IgnoreFuncName><!—超时时间毫秒—><TimeOut>20000</TimeOut><!—注册到的目标—><Ts Ip="127.0.0.1" Port="7010"/><IocDll><!— IOC 仓储—><!—<Assembly>Anno.Repository</Assembly>—><!— 领域—><!—<Assembly>Anno.Domain</Assembly>—><!— 查询服务—><!—<Assembly>Anno.QueryServices</Assembly>—><!—事件Handler—><!—<Assembly>Anno.Command.Handler</Assembly>—></IocDll><appSettings><!— 数据库连接字符串 Mysql—><add key="ConnStr"value="server=127.0.0.1;database=viper;uid=bif;pwd=123456;SslMode=None;"/><!—redisConn Redis 连接字符串 127.0.0.1:6379,abortConnect=false,allowAdmin =true,keepAlive=180redisPrefix Key 前缀 Anno:redisExpiryDate Key 有效期 单位(分钟) 20redisSwitch 是否开启数据库 false 不开启 false<add key="redisConn" value=""/><add key="redisPrefix" value="SW:"/><add key="redisExpiryDate" value="20"/><add key="redisSwitch" value="false"/>—></appSettings></configuration>
Autofac
、DependencyInjection
,推荐Autofac
IocLoader.GetAutoFacContainerBuilder()
为Autofac方式
IocLoader.GetServiceDescriptors()
为DependencyInjection方式 .netcore 自带的依赖注入中间件
需要注意的是使用IocLoader.GetServiceDescriptors 需要在Bootstrap.StartUp方法中使用第二个参数指定IocType.DependencyInjection
### 5. 接口文档写入 注册中心ViperCenter
#
这段代码直接黏贴就可以不用修改
Bootstrap.StartUp(args, () =>//服务配置文件读取完成后回调(服务未启动)
{
//Anno.Const.SettingService.TraceOnOff = true;
/
功能插件选择是Thrift还是 Grpc
Install-Package Anno.Rpc.Client -Version 1.0.3.3 Thrift
Install-Package Anno.Rpc.ServerGrpc -Version 1.0.3.3 Grpc
此处为 Thrift
/
var autofac = IocLoader.GetAutoFacContainerBuilder();
autofac.RegisterType(typeof(RpcConnectorImpl)).As(typeof(IRpcConnector)).SingleInstance();
}
, () =>//服务启动后的回调方法
{
/*
服务Api文档写入注册中心
*/
Bootstrap.ApiDoc();
});
### 6 运行服务宿主程序#

每隔一秒
重试一次,重试60
(默认60
可以自行修改)仍失败则不再注册。
Edit this page
Previous
« 2.1 注册中心概述
Next
4.1 网关&监控 »
- 3.1.1 源码结构
- MySQL 数据库
- 3.1.2 控制台程序
- 1. 取名 ViperService
- 2. 添加Nuget包
- 3. 配置文件
- 4. 程序文件
- 5. 接口文档写入 注册中心ViperCenter
- 6 运行服务宿主程序
文档
社区
更多
Copyright © 2022 Anno.