From 53e48da9e2c076ef8c77ddfcda36e2bba516b992 Mon Sep 17 00:00:00 2001 From: yilei <87119538@qq.com> Date: Thu, 30 Apr 2020 10:08:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dserver=E7=AB=AF=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=B3=A8=E5=85=A5client=E9=85=8D=E5=88=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Grpc.Extension.AspNetCore.csproj | 4 ++-- src/Grpc.Extension.Client/Grpc.Extension.Client.csproj | 4 +++- src/Grpc.Extension.Client/ServiceCollectionExtensions.cs | 3 ++- src/Grpc.Extension/Grpc.Extension.csproj | 6 +++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Grpc.Extension.AspNetCore/Grpc.Extension.AspNetCore.csproj b/src/Grpc.Extension.AspNetCore/Grpc.Extension.AspNetCore.csproj index b284600..0c00b55 100644 --- a/src/Grpc.Extension.AspNetCore/Grpc.Extension.AspNetCore.csproj +++ b/src/Grpc.Extension.AspNetCore/Grpc.Extension.AspNetCore.csproj @@ -2,8 +2,8 @@ netcoreapp3.0 - 1.4.5 - Grpc.Extensions.AspNetCore + 1.4.6 + FM.Grpc.Extensions.AspNetCore RabbitYi 一个基于GRPC的简单微服务框架 1.服务注册和发现 diff --git a/src/Grpc.Extension.Client/Grpc.Extension.Client.csproj b/src/Grpc.Extension.Client/Grpc.Extension.Client.csproj index e14c384..94f7e1c 100644 --- a/src/Grpc.Extension.Client/Grpc.Extension.Client.csproj +++ b/src/Grpc.Extension.Client/Grpc.Extension.Client.csproj @@ -13,10 +13,12 @@ 5.DashBoard(远程调用,手动熔断,日志输出控制) 6.Grpc CodeFirst - 1.4.5 + 1.4.6 git grpc,dashboard,consul,micorservice,opentracing,polly https://github.com/yileicn/Grpc.Extensions/ + 1.4.6.0 + 1.4.6.0 diff --git a/src/Grpc.Extension.Client/ServiceCollectionExtensions.cs b/src/Grpc.Extension.Client/ServiceCollectionExtensions.cs index e9c3d33..61288b5 100644 --- a/src/Grpc.Extension.Client/ServiceCollectionExtensions.cs +++ b/src/Grpc.Extension.Client/ServiceCollectionExtensions.cs @@ -34,7 +34,8 @@ public static class ServiceCollectionExtensions public static IServiceCollection AddGrpcClientExtensions(this IServiceCollection services, IConfiguration conf) { //注入配制 - services.Configure(conf.GetSection("GrpcClient")); + var key = conf["GrpcServer:ServiceAddress"] != null ? "GrpcServer" : "GrpcClient"; + services.Configure(conf.GetSection(key)); //GrpcClientApp services.AddSingleton(); //添加客户端中间件的CallInvoker diff --git a/src/Grpc.Extension/Grpc.Extension.csproj b/src/Grpc.Extension/Grpc.Extension.csproj index b7df043..fe97e47 100644 --- a/src/Grpc.Extension/Grpc.Extension.csproj +++ b/src/Grpc.Extension/Grpc.Extension.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 1.4.5 + 1.4.6 一个基于GRPC的简单微服务框架 1.服务注册和发现 2.服务自动负载均衡 @@ -16,8 +16,8 @@ Grpc.Extensions false - 1.4.1.0 - 1.4.1.0 + 1.4.6.0 + 1.4.6.0 git grpc,dashboard,consul,micorservice,opentracing,polly https://github.com/yileicn/Grpc.Extensions/ From 77b2d14312533beceab751e086c6442de50ff5e2 Mon Sep 17 00:00:00 2001 From: yilei <87119538@qq.com> Date: Thu, 30 Apr 2020 10:14:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0MathClientHost=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E5=8F=AA=E6=9C=89GrpcClient=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=9C=8D=E5=8A=A1=EF=BC=88WebApi=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Grpc.Extensions.sln | 9 ++- .../MathClientHost/MathClientHost.csproj | 25 +++++++ examples/CodeFirst/MathClientHost/Program.cs | 68 +++++++++++++++++++ .../MathClientHost/config/appsettings.json | 17 +++++ .../MathClientHost}/config/hostsettings.json | 0 .../.gitignore | 0 .../GreeterClientHost.csproj} | 0 .../Program.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../app.config | 0 .../config/appsettings.json | 0 .../config/hostsettings.json | 3 + .../packages.config | 0 13 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 examples/CodeFirst/MathClientHost/MathClientHost.csproj create mode 100644 examples/CodeFirst/MathClientHost/Program.cs create mode 100644 examples/CodeFirst/MathClientHost/config/appsettings.json rename examples/{Greeter/GreeterClientTest => CodeFirst/MathClientHost}/config/hostsettings.json (100%) rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/.gitignore (100%) rename examples/Greeter/{GreeterClientTest/GreeterClientTest.csproj => GreeterClientHost/GreeterClientHost.csproj} (100%) rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/Program.cs (100%) rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/Properties/AssemblyInfo.cs (100%) rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/app.config (100%) rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/config/appsettings.json (100%) create mode 100644 examples/Greeter/GreeterClientHost/config/hostsettings.json rename examples/Greeter/{GreeterClientTest => GreeterClientHost}/packages.config (100%) diff --git a/Grpc.Extensions.sln b/Grpc.Extensions.sln index c6c2216..addbb02 100644 --- a/Grpc.Extensions.sln +++ b/Grpc.Extensions.sln @@ -35,12 +35,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Grpc.Extension.AspNetCore", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MathServer.AspNetCore", "examples\CodeFirst\MathServer.AspNetCore\MathServer.AspNetCore.csproj", "{CF0443B5-DC32-4C80-B80E-A3F8D6E1792B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreeterClientTest", "examples\Greeter\GreeterClientTest\GreeterClientTest.csproj", "{ACCF4597-3748-4117-8633-1CB767F8CCC3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreeterClientHost", "examples\Greeter\GreeterClientHost\GreeterClientHost.csproj", "{ACCF4597-3748-4117-8633-1CB767F8CCC3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreeterClient", "examples\Greeter\GreeterClient\GreeterClient.csproj", "{724DFC8C-4B57-4C3F-811C-0463BE2A2829}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AspNetCore3.0", "AspNetCore3.0", "{291086F1-5608-46C9-9976-BD969B8C8256}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MathClientHost", "examples\CodeFirst\MathClientHost\MathClientHost.csproj", "{5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -103,6 +105,10 @@ Global {724DFC8C-4B57-4C3F-811C-0463BE2A2829}.Debug|Any CPU.Build.0 = Debug|Any CPU {724DFC8C-4B57-4C3F-811C-0463BE2A2829}.Release|Any CPU.ActiveCfg = Release|Any CPU {724DFC8C-4B57-4C3F-811C-0463BE2A2829}.Release|Any CPU.Build.0 = Release|Any CPU + {5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -119,6 +125,7 @@ Global {CF0443B5-DC32-4C80-B80E-A3F8D6E1792B} = {BE41EB1C-CB4F-4EDD-9E47-17D54308B014} {ACCF4597-3748-4117-8633-1CB767F8CCC3} = {94B12F76-D786-4D94-A9F4-8DD7DD73685F} {724DFC8C-4B57-4C3F-811C-0463BE2A2829} = {94B12F76-D786-4D94-A9F4-8DD7DD73685F} + {5B3DC8DC-AC90-4BF2-9E1C-DE46F9782160} = {BE41EB1C-CB4F-4EDD-9E47-17D54308B014} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {89FBBEF6-DF3C-43D4-BD32-075D5E3D14F2} diff --git a/examples/CodeFirst/MathClientHost/MathClientHost.csproj b/examples/CodeFirst/MathClientHost/MathClientHost.csproj new file mode 100644 index 0000000..b2a446c --- /dev/null +++ b/examples/CodeFirst/MathClientHost/MathClientHost.csproj @@ -0,0 +1,25 @@ + + + + Exe + netcoreapp2.1 + + + + + + + + + + + + + + + + Always + + + + diff --git a/examples/CodeFirst/MathClientHost/Program.cs b/examples/CodeFirst/MathClientHost/Program.cs new file mode 100644 index 0000000..e6ff96f --- /dev/null +++ b/examples/CodeFirst/MathClientHost/Program.cs @@ -0,0 +1,68 @@ +using Grpc.Extension.Client; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.IO; +using static MathGrpc.MathGrpc; +using Grpc.Extension.Abstract.Model; + +namespace MathClientTest +{ + class Program + { + static void Main(string[] args) + { + //使用配制文件 + var configPath = Path.Combine(AppContext.BaseDirectory, "config"); + var host = new HostBuilder() + .ConfigureAppConfiguration((ctx, conf) => + { + conf.SetBasePath(configPath); + conf.AddJsonFile("appsettings.json", false, true); + }) + .ConfigureServices((ctx, services)=> { + services.AddGrpcClientExtensions(ctx.Configuration);//注入GrpcClientExtensions + services.AddGrpcClient("Math.Test");//注入grpc client + }) + .Build(); + + var provider = host.Services; + //配制GrpcClientApp + var clientApp = provider.GetService(); + clientApp. + //使用日志(默认使用LoggerFactory) + UseLogger((log) => + { + log.LoggerMonitor += (msg, type) => Console.WriteLine(GetLogTypeName(type) + ":" + msg); + log.LoggerError += (ex, type) => Console.WriteLine(GetLogTypeName(type) + ":" + ex); + }).Run(); + + //从容器获取client + var client = provider.GetService(); + + Console.WriteLine("start:"); + try + { + for (int i = 0; i < 10; i++) + { + var reply = client.Add(new MathGrpc.AddRequest() { Num1 = 1, Num2 = i}); + Console.WriteLine($"Add {i.ToString()}: {reply.Value}"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + + + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } + + private static string GetLogTypeName(LogType logtype) + { + return Enum.GetName(typeof(LogType), logtype); + } + } +} diff --git a/examples/CodeFirst/MathClientHost/config/appsettings.json b/examples/CodeFirst/MathClientHost/config/appsettings.json new file mode 100644 index 0000000..5361d48 --- /dev/null +++ b/examples/CodeFirst/MathClientHost/config/appsettings.json @@ -0,0 +1,17 @@ +{ + "GrpcClient": { + //ַַ + "DiscoveryUrl": "http://192.168.8.6:8500", + //ַʱ() + "ServiceAddressCacheTime": 10, + //ĬϵĴ + "DefaultErrorCode": 4200000, + //Jaeger(OpenTracing) + "Jaeger": { + //Jaegerϵķ + "ServiceName": "MathClient", + "AgentIp": "192.168.8.11", + "AgentPort": 5775 + } + } +} \ No newline at end of file diff --git a/examples/Greeter/GreeterClientTest/config/hostsettings.json b/examples/CodeFirst/MathClientHost/config/hostsettings.json similarity index 100% rename from examples/Greeter/GreeterClientTest/config/hostsettings.json rename to examples/CodeFirst/MathClientHost/config/hostsettings.json diff --git a/examples/Greeter/GreeterClientTest/.gitignore b/examples/Greeter/GreeterClientHost/.gitignore similarity index 100% rename from examples/Greeter/GreeterClientTest/.gitignore rename to examples/Greeter/GreeterClientHost/.gitignore diff --git a/examples/Greeter/GreeterClientTest/GreeterClientTest.csproj b/examples/Greeter/GreeterClientHost/GreeterClientHost.csproj similarity index 100% rename from examples/Greeter/GreeterClientTest/GreeterClientTest.csproj rename to examples/Greeter/GreeterClientHost/GreeterClientHost.csproj diff --git a/examples/Greeter/GreeterClientTest/Program.cs b/examples/Greeter/GreeterClientHost/Program.cs similarity index 100% rename from examples/Greeter/GreeterClientTest/Program.cs rename to examples/Greeter/GreeterClientHost/Program.cs diff --git a/examples/Greeter/GreeterClientTest/Properties/AssemblyInfo.cs b/examples/Greeter/GreeterClientHost/Properties/AssemblyInfo.cs similarity index 100% rename from examples/Greeter/GreeterClientTest/Properties/AssemblyInfo.cs rename to examples/Greeter/GreeterClientHost/Properties/AssemblyInfo.cs diff --git a/examples/Greeter/GreeterClientTest/app.config b/examples/Greeter/GreeterClientHost/app.config similarity index 100% rename from examples/Greeter/GreeterClientTest/app.config rename to examples/Greeter/GreeterClientHost/app.config diff --git a/examples/Greeter/GreeterClientTest/config/appsettings.json b/examples/Greeter/GreeterClientHost/config/appsettings.json similarity index 100% rename from examples/Greeter/GreeterClientTest/config/appsettings.json rename to examples/Greeter/GreeterClientHost/config/appsettings.json diff --git a/examples/Greeter/GreeterClientHost/config/hostsettings.json b/examples/Greeter/GreeterClientHost/config/hostsettings.json new file mode 100644 index 0000000..5fa9430 --- /dev/null +++ b/examples/Greeter/GreeterClientHost/config/hostsettings.json @@ -0,0 +1,3 @@ +{ + "environment": "Development" +} \ No newline at end of file diff --git a/examples/Greeter/GreeterClientTest/packages.config b/examples/Greeter/GreeterClientHost/packages.config similarity index 100% rename from examples/Greeter/GreeterClientTest/packages.config rename to examples/Greeter/GreeterClientHost/packages.config