dymDemo

github 地址:https://github.com/duyanming/dymDemo

dym 分布式开发框架 Demo 熔断 限流 事件总线(包括基于内存的、rabbitmq的) CQRS DDD 实例 随后更新

dym 分布式开发框架

dym 是一个分布式开发框架,同时支持 .net core2.2 、.net frameworker4.6.1。

1、运行Demo

第一步:启动注册中心
进入项目文件夹 dymDemo\YY.AppCenter\bin\Debug\netcoreapp2.2 ,运行命令 dotnet AppCenter.dll
看到下图 说明运行成功
代码:默认监听6660端口
 using dym.Rpc.Center;
static class Program
{
static void Main(string[] args)
{
Console.Title = "YY.AppCenter";
Bootstrap.StartUp(args);
} }

配置文件:dym.config

服务启动后会注册到<Servers>节点内

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--#lbs 配置-->
<Port>6660</Port>
<TimeOut>120000</TimeOut>
<Servers> </Servers>
</configuration>

第二步:启动服务Server
Server可以和 AppCenter 不在同一台电脑,也可以运行多个server 也可以负载均衡,高级用法随后介绍
进入项目文件夹 dymDemo\YY.Server\bin\Debug\netcoreapp2.2 ,运行命令 dotnet YY.Server.dll
看到下图 说明 Server 成功运行 并且已经注册到 注册中心(APPCenter)运行成功
代码:默认监听6659端口
 using dym.Rpc.Server;
static class Program
{
static void Main(string[] args)
{
Bootstrap.StartUp(args);
} }

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--0,0 第一位是 工作站,第二位数据中心
(所有的 APPservice 的 两位数不能重复例如不能存在【1,2】【1,2】)
可以存在【1,2】【2,1】
-->
<IdWorker>0,0</IdWorker>
<!--App名称-->
<AppName>App001</AppName>
<!--监听端口-->
<Port>6659</Port>
<!--权重-->
<Weight>1</Weight>
<!--功能 非dym.Plugs 加入方式-->
<FuncName></FuncName>
<!--忽略的功能 Trace,Logic-->
<IgnoreFuncName></IgnoreFuncName>
<!--超时时间毫秒-->
<TimeOut>20000</TimeOut>
<!--注册到的目标-->
<Ts Ip="10.112.93.122" Port="6660"/>
<IocDll>
<!-- IOC 仓储--><!--
<Assembly>dym.Repository</Assembly>
--><!-- 领域--><!--
<Assembly>dym.Domain</Assembly>
--><!-- 查询服务--><!--
<Assembly>dym.QueryServices</Assembly>
--><!--事件Handler--><!--
<Assembly>dym.Command.Handler</Assembly>-->
</IocDll> </configuration>
业务代码示例:dym.Plugs.YYTestService
服务启动 配置
using System;
using dym.EngineData; namespace dym.Plugs.YYTestService
{
//服务启动 配置
public class YYTestBootstrap : IPlugsConfigurationBootstrap
{
public void ConfigurationBootstrap()
{
/*
* 服务启动的时候会执行此方法
* 也可以用来加载插件的配置
*/ } public void PreConfigurationBootstrap()
{
//Ioc 注入之前
}
}
}

业务编写:

using dym.EngineData;
using System;
using System.Collections.Generic;
using System.Text; namespace dym.Plugs.YYTestService
{
public class MyFirstModule: BaseModule
{
public MyFirstModule() {
} public ActionResult MyT() {
var xx = RequestString("XX");
Console.WriteLine($"来自客户端的消息:{xx}");
return new ActionResult(true,new { Msg= " I from dym.Plugs.YYTestService MyFirstModule!" },null, xx);
}
}
}
 

第三步:启动Client测试分布式框架是否可以正常运行
启动Client 测试 Client调用 Server是否成功
进入项目文件夹 dymDemo\YY.Client\bin\Debug\netcoreapp2.2 ,运行命令 dotnet YY.Client.dll
看到下图 说明 Client 成功运行

客户端代码:
using System;

using dym.Rpc.Client;

namespace YY.Client
{
class Program
{
static void Main(string[] args)
{
/*
* 1、AppName
* 2、注册中心
* 3、注册中心端口
* 4、关闭调用链追踪
*/
DefaultConfigManager.SetDefaultConfiguration("YY.Client", "127.0.0.1", 6660,false);
Restart:
Console.WriteLine("请输入一个消息然后回车发送到服务器:");
var inputMsg = Console.ReadLine();
var input = new InputTest()
{
channel = "dym.Plugs.YYTest",
router = "MyFirst",
method = "MyT",
XX = $"{inputMsg}参数1"
}; var rltStr = Connector.BrokerDns(input);
//var outPut = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(rltStr);
Console.WriteLine(rltStr); Console.WriteLine("-----------------------------------------------------------------------------"); var inputYYTest = new InputTest()
{
channel = "dym.Plugs.YYTest",
router = "MySecond",
method = "MyT",
XX = $"{inputMsg}参数2"
};
var rltStrYY = Connector.BrokerDns(inputYYTest);
//var outPutYY = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(rltStr);
Console.WriteLine(rltStrYY);
goto Restart;
}
} public class InputTest : InputDtoBase
{
public string XX { get; set; }
}
}
 

net core 微服务 快速开发框架的更多相关文章

  1. net core 微服务 快速开发框架 Viper 初体验2020-10-17

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  2. 不死的小强 .net core 微服务 快速开发框架 Viper 限流

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  3. 一个轻量级的.Net Core微服务快速开发的轮子

    前言     Adnc是一个轻量级的.Net Core微服务快速开发框架,同时也可以应用于单体架构系统的开发.框架基于JWT认证授权.集成了一系列微服务配套组件,代码简洁.易上手.学习成本低.开箱即用 ...

  4. .netcore 微服务快速开发框架 Anno&Viper 注册中心 (服务上线下线预警通知)

    1.微服务时代,服务上线先预警通知 在微服务大行其道的今天,相信很多人都用上了微服务或者是微服务的概念也已经有了一个深刻的了解.今天我们不在这里展开阐述,今天我们要说的是微服务伴侣预警通知. 2.注册 ...

  5. 基于SpringBoot-Dubbo的微服务快速开发框架

    简介: 基于Dubbo的分布式/微服务基础框架,为前端提供脚手架开发服务,结合前一篇--Web AP快速开发基础框架,可快速上手基于Dubbo的分布式服务开发,项目代码: https://github ...

  6. .netcore 微服务快速开发框架 Anno&Viper -分布式锁是个什么鬼

    1.什么是锁 锁是为了解决多线程或者多进程资源竞争的问题. 同一进程的多个线程资源竞争可以用lock解决. lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区. 如果其他线 ...

  7. net core 微服务框架 Viper 调用链路追踪

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  8. hello world .net core 微服务框架 Viper

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  9. Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架

    前言     Adnc是一个轻量级的.Net Core微服务开发框架,同样适用于单体架构系统的开发.     如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,其它软件建议大家都使用`do ...

随机推荐

  1. 打包下载zip代码

    /// <summary> /// 下载文件 /// </summary> /// <param name="dt">需要处理的数据集</ ...

  2. Webpack 打包优化之速度篇

    在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨:当然,那些法子对于打包速度的提升,也是大有裨益.然而,打包速度之于开发体验和及时构建,相当重要:所以有必要 ...

  3. 记一次线上OOM问题分析与解决

    一.问题情况 最近用户反映系统响应越来越慢,而且不是偶发性的慢.根据后台日志,可以看到系统已经有oom现象. 根据jdk自带的jconsole工具,可以监视到系统处于堵塞时期.cup占满,活动线程数持 ...

  4. 逐浪CMS最新V8.1.6 Beta版安装部署操作

    首先要获得内部最新版本的CMS,官网有公开发布版本,但不属于内部最新的,内部最新的CMS系统是不断的有功能的迭代更新. 操作系统建议是win10.1.windows server2012\2016\2 ...

  5. 发现新世界:神级浏览器插件TamperMonkey(暴力猴)

    由于谷歌浏览器各种受限 于是我就先使用火狐浏览器尝试此插件 步骤非常简单. 1.在火狐浏览器内打开如下网址:https://addons.mozilla.org/zh-CN/firefox/addon ...

  6. 月薪20k的java面试题他来了

    1.场景描述 最近有朋友私信,说网上的面试资料有点散,还有些过时的,问老王能否帮忙整理下,老王晚上刚好有空,就给梳理了下,分享给大家. 2.解决方案 2.1 说明 (1)面试的题目多数是从网上找的,老 ...

  7. switch-case 选择语句

    0. 语句模型 Go 里的选择语句模型是这样的 switch 表达式 { case 表达式1: 代码块 case 表达式2: 代码块 case 表达式3: 代码块 case 表达式4: 代码块 cas ...

  8. Codeforces1146G. Zoning Restrictions

    Description You are planning to build housing on a street. There are n spots available on the street ...

  9. CBC字节翻转攻击

    iscc2018线上赛开始两周多了,学到了很多,写几篇文章总结一下遇到的知识点,做一个归纳,方便以后查找. web300-----CBC字节翻转攻击 cbc是AES加密的cbc模式 即密码分组链模式: ...

  10. IOT(esp8266)

    今日工具: 硬件: esp8266 DHT11温湿度传感器 软件: Arduino ESP8266 是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP ...