基于winserver部署Apollo初次体验(附.net客户端demo)(二)

简介: 基于winserver部署Apollo初次体验(附.net客户端demo)(二)

初体验


输入浏览器输入http://localhost:8070


账号:apollo


密码:admin


可以见到默认的有一个Sample App项目,点进去,就可以见到下图


image.png


.net客户端


创建一个控制台项目,下载apollo.net包


nuget install apollo.net
static void Main(string[] args)
        {
            Config config = ConfigService.GetAppConfig();
            config.ConfigChanged += OnChanged;
            while (true)
            {
                Thread.Sleep(500);
                var timeout = config.GetProperty("timeout", "");
                Console.WriteLine(timeout);
            }
        }
        private static void OnChanged(object sender, ConfigChangeEventArgs changeEvent)
        {
            Console.WriteLine("Changes for namespace {0}", changeEvent.Namespace);
            foreach (string key in changeEvent.ChangedKeys)
            {
                ConfigChange change = changeEvent.GetChange(key);
                Console.WriteLine("Change - key: {0}, oldValue: {1}, newValue: {2}, changeType: {3}", change.PropertyName, change.OldValue, change.NewValue, change.ChangeType);
            }
        }


另外在app.config填写以下变量


<!-- Change to the actual app id -->
    <add key="AppID" value="SampleApp"/>
    <!-- Should change the apollo config service url for each environment -->
    <add key="Apollo.DEV.Meta" value="http://localhost:8080"/>
    <add key="Apollo.FAT.Meta" value="http://localhost:8080"/>
    <add key="Apollo.UAT.Meta" value="http://localhost:8080"/>
    <add key="Apollo.PRO.Meta" value="http://localhost:8080"/>


启动控制台程序


修改配置并发布

image.png

image.png


此时返回控制台程序查看


image.png



这个时候我们通过监听程序监听到配置在后台被修改了,同时能获取到最新配置值


配置更新的推拉机制


image.png


从上图看到,阿波罗配置更新具备推和拉两种方式,在后台修改并发布后,会及时将配置推给客户端,假如没推成功,客户端会通过后台线程定时更新。


如果客户端与服务端发生了网络分区,此时可以通过客户端获取本地文件缓存的配置数据,让系统正常运作。


缓存数据默认存储在C:\opt\data


从以上来看,阿波罗在可用性设计上还是很不错的。


目录
相关文章
|
23天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
37 1
|
27天前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
54 8
|
1月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
35 0
|
1月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
59 0
|
2月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
38 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
54 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
46 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
下一篇
无影云桌面