Menu

Anno LogoAnno LogoAnno文档博客

QQ群:478399354在线体验Viper面板 仓库

GitHub

🌜

🌞

Anno LogoAnno LogoAnno

# 3.1 服务提供者ViperService概述 ## 3.1.1 源码结构# 3.1 服务提供者ViperService概述 - 图5 ### MySQL 数据库# 运行数据库脚本创建数据库 1、Viper\database\Viper20210201_01.sql ## 3.1.2 控制台程序# ### 1. 取名 ViperService# ### 2. 添加Nuget包#
dotnet add package Anno.Rpc.Server —version 1.7.0.1
dotnet add package Anno.EngineData —version 1.7.0.2
##### 开发者可以根据喜好选择底层RPC通讯中间件 目前支持两种ThriftGrpc,推荐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. 配置文件#

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=180
redisPrefix Key 前缀 Anno:
redisExpiryDate Key 有效期 单位(分钟) 20
redisSwitch 是否开启数据库 false 不开启 false
<add key="redisConn" value=""/>
<add key="redisPrefix" value="SW:"/>
<add key="redisExpiryDate" value="20"/>
<add key="redisSwitch" value="false"/>
—>
</appSettings>
</configuration>
##### 提示 一般情况下只用修改 下面两行配置 <!—注册到的目标—> <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(); }); } } } ##### 服务宿主程序可以根据需要开发者自己选择依赖注入中间件 目前支持两种AutofacDependencyInjection,推荐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 运行服务宿主程序# 3.1 服务提供者ViperService概述 - 图6 ##### 说明 - 1.看到上图画面说明已经运行成功,开始往注册中心注册 - 2.因为我没有启动注册中心,所以为出现注册失败的提示。 - 3.注册失败会每隔一秒重试一次,重试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.