很多同学说AgileConfig的UI实在是太丑了。我想想也是的,本来这个项目是我自己使用的,一开始甚至连UI都没有,全靠手动在数据库里修改数据。后来加上了UI也是使用了老掉牙的bootstrap3做为基础样式。前台框架也是使用了angularjs,同样是老掉牙的东西。过年期间终于下决心翻新AgileConfig的前端UI。最后选择的前端UI框架为AntDesign Pro + React。至于为啥选Ant-Design Pro是因为他好看,而且流行,选择React是因为VUE跟Angular我都略知一二,干脆趁此机会学一学React为何物,为何这么流行。 登录的认证方案为JWT,其实本人对JWT不太感冒(请看这里《我们真的需要jwt吗?》),无奈大家都喜欢,那我也只能随大流。 其实基于ant-design pro的界面我已经翻的差不多了,因为它支持mock数据,所以我一行后台代码都没修改,已经把界面快些完了。从现在开始要真正的跟后端代码进行联调了。那么我们先从登录开始吧。先看看后端asp.net core方面会如何进行修改。 修改ASP.NET Core后端代码 "JwtSetting": { "SecurityKey": "xxxxxxxxxxxx", // 密钥 "Issuer": "agileconfig.admin", // 颁发者 "Audience": "agileconfig.admin", // 接收者 "ExpireSeconds": 20 // 过期时间 s } 在appsettings.json文件添加jwt相关配置。 ``` public class JwtSetting { static JwtSetting() { Instance = new JwtSetting(); Instance.Audience = Global.Config[“JwtSetting:Audience”]; Instance.SecurityKey = Global.Config[“JwtSetting:SecurityKey”];...
[Read More]
使用sql server分区表功能提高数据库的读写性能
首先祝大家新年快乐,身体健康,万事如意。
一般来说一个系统最先出现瓶颈的点很可能是数据库。比如我们的生产系统并发量很高在跑一段时间后,数据库中某些表的数据量会越来越大。海量的数据会严重影响数据库的读写性能。
这个时候我们会开始优化系统,一般会经过这么几个过程:
找出SQL慢查询,针对该SQL进行优化,比如改进SQL的写法,查看执行计划对全表扫描的字段建立索引
引入缓存,把一部分读压力加载到内存中
读写分离
引入队列,把并发的请求使其串行化,来减轻系统瞬时压力
分表/分库
[Read More]
Agileconfig 已支持restful api 维护配置
AgileConfig
AgileConfig是一个基于.net core开发的轻量级配置中心。
AgileConfig秉承轻量化的特点,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像Apollo那样复杂且庞大。但是它的功能也已经足够你替换webconfig,appsettings.json这些文件了。如果你不想用微服务全家桶,不想为了部署一个配置中心而需要看N篇教程跟几台服务器那么你可以试试AgileConfig :)
[Read More]
Agileconfig 如何使用agileconfig.client读取配置
前面的文章都是介绍AgileConfig服务端已经控制台是如何工作、如何使用的,其实AgileConfig还有一个重要的组成部分:AgileConfig.Client。 AgileConfig.Client是使用C#编写的一个类库,只有使用它才能跟AgileConfig的服务端配合工作实现实时推送配置信息等功能。 最近有几个同学问我如何集成Client,如何使用Client,看来光是Readme上的示例还是不够的,有必要比较详细的介绍下如何使用AgileConfig.Client。 下面通过几个示例来演示下如何AgileConfig.Client如何在mvc,控制台,wpf等程序上来读取配置: asp.net core mvc下读取配置 mvc项目应该是目前使用最广泛的项目,同样它与AgileConfig.Client的集成最深入。下面来看看如何在mvc项目下使用AgileConfig.Client。 安装AgileConfig.Client Install-Package AgileConfig.Client 当然第一步是使用nuget命令安装最新版的Client库。 修改appsettings.json "AgileConfig": { "appId": "test_app", "secret": "", "nodes": "http://agileconfig.xbaby.xyz:5000" } AgileConfig.Client连接服务端需要一点必要的信息,我们把这些信息配置在appsettings.json文件里。节点的名称叫“AgileConfig”,里面配置了: appId 应用id secret 应用密钥,没有的话留空 nodes 节点地址,如果有多个则使用英文逗号(,)分隔 AddAgileConfig 修改program.cs文件: public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((context, config) => { //注入AgileConfig Configuration Provider config.AddAgileConfig(); }) .ConfigureWebHostDefaults(webBuilder => {...
[Read More]
Azure应用服务+github实现持续部署
上次我们介绍了如果使用Azure应用服务。我们通过Visual studio新建一个项目后手动编译发布代码。然后通过FTP上传我们的发布文件。整个过程跟我们手动发布项目到IIS上其实没啥差别。
这么操作有点繁琐,显然在这年头也有点过时了。这次我们来玩一下azure应用比较高级的持续部署。说高级其实也很简单,Azure现在跟github有比较深入的集成,只有通过鼠标点几下,立马就完成了。
话不多说,下面就演示下吧。
配置部署中心
如何新建应用服务因为前面讲过了就不在赘述了。直接从配置部署中心开始吧。
点击侧边“部署中心”,在弹出的页面上选择“Github”。
点击“继续”弹出github授权界面。
点击“Authorize AzureAppService”同意授权。
点击“下一步”配置生成提供程序,选择“Github Actions”。
点击“下一步”弹出配置界面,这个页面可以选择github上的仓库。
我随便选一个以前提交上去的RazorpageCrudDemo吧。分支选择master。运行时堆栈选择:.net core,版本 .net core 3.1 lts 。
```
Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
More GitHub Actions for Azure: https://github.com/Azure/actions
[Read More]