基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇

基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换为Reactor-Netty,像Redisson底层也是使用Netty封装通讯协议,最近调研和准备使用的SOFARpc也是基于Netty封装实现了多种协议的兼容。因此,基于Netty造一个轮子,在SpringBoot的加持下,实现一个轻量级的RPC框架。这篇博文介绍的是RPC框架协议的定义以及对应
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

2020年寒假假期总结0112

  实验二Scala 语言基础   实验一是对于linux系统的安装和常用命令,在之前的博客园随笔中已经有了记录,所以便不再赘述,直接开始第二章关于scala语言的学习   对于scala语言,今天并没有完全学习完,只是完成了实验内容,在下面会总结一下,自己在完成实验过程中的总结的几个刚接触的易错点   1. 计算级数   请用脚本的方式编程计算并输出下列级数的前n项之和Sn,直到Sn刚好大于或等于q 为止,其中q为大于0的整数,其值通过键盘输入。sn=2/1+3/2+4/3+…n+1/n,例
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

2020第2周日

刚从大明湖散步回来,感觉还好,常运动保持健康是最重要的事。 关注到微信公开课有上张小龙故意缺席而将微信团队推向用户,在视频中说到微信下一个发力点是短内容,然后微信发布了小程序框架,可以让小程序脱离微信运行,有人说微信是在尝试做下一个JAVA。 对于9岁的微信来说,已经不再是将产品的每一项功能做到完美,而是怎么做出一个环境,并且不使它的方向发生偏离。这其中,既有坚持,也有放弃。而这些背后的思考逻辑是,将微信的短内容、商业化、搜索、支付、AI、企业微信、小程序放在生态中间来看,看看会引发怎样的流向
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

《重构 改善既有代码的设计》阅读笔记(1)

重构 改善既有代码的设计(1) 重构的例子 简单的剧院例子 书中所编写的sample是一个剧团的收入系统。程序的基本的输入为曲目列表和某一个地区、剧院的账单列表。程序的基本输出 则是具体的账目列表。整个程序采用js进行编写。 剧院例子带给我们的启示 整个程序看起来,组织有一些不清晰,但其实还可以忍受。但是,如果要增加更多的需求,例如,要以html的形式输出,要增加 剧种,那么,糟糕的程序结构带来的问题,会是雪崩式的。越改越乱,越改越糟。基于这点,作者回答了为什么要重构的问题: 如果需要对一段程
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

吴裕雄--天生自然PYTHON爬虫:使用BeautifulSoup解析中国旅游网页数据

import requests from bs4 import BeautifulSoup url = "http://www.cntour.cn/" strhtml = requests.get(url) soup = BeautifulSoup(strhtml.text,"lxml") #下面的参数由网站开发者模式中Copy->copy selector复制而来 data = soup.select("#main > div > div.mtop.firstMod.clearfix >
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

java并发编程之一、概述

一、为什么有并发 其实回答为什么要有并发,目的在于在合适的地方使用并发,只有在合适的地方使用并发,才会最大化的发挥并发的优势。 协调计算机不同设备间的速率。现代计算机由CPU、内存、硬盘、网络这几部分组成,其中CPU中还有寄存器。其中,CPU是计算发生的地方,寄存器、内存、硬盘和网络是数据存储的地方。发生计算的时候,需要将数据从硬盘或者网络加载到内存和寄存器,在CPU中进行实际的计算。而CPU的计算速率最高,寄存器、内存、硬盘和网络的存取速率依次递减,并且有着数量级的差异,比如CPU从寄存器中
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一、Jenkins 进入项目---->Configure 1、设置项目代码从git中拉取 2、设置钩子程序 二、gitlab设置 1、进入项目-->设置 以上两个步骤设置完成就可以了。如果不能触发可能是gitlab hook插件没安装,安装下即可。
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

awk基础用法与内置函数小结

基础用法 awk -F FS值 '处理行{处理规则}' 处理文本 awk可以用于处理多行的文本或者命令输出的内容,一般为先确定行再确定列。 -F指定列的分割符,FS为awk内置变量,存储分隔符(默认空格或Tab,可指定多个用中括号包裹),例如按"*"或"@"分割: awk -F "[*@]" 'NR==1{print FS}' xxx.txt 输出:[*@] NR表示处理行号(从1开始),如果不指定NR则作用于所有行。 awk通过$加数字来指定处理的列号(从1开始),但是$0表示全部列,也就等
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

【Pythoin】Flask简单教程

Flask是一个简单的Python Web开发框架,比Django小巧许多。 下面是一个简单的Demo演示,附上注释 #-*- coding:utf-8 -*- #导入Flask扩展 from flask import Flask #创建Flask应用程序实例 app = Flask(__name__) #定义路由以及试图函数 #定义路由,是用装饰器实现的 #路由默认只支持GET,如果需要增加,需要自行制定 @app.route('/',methods=["GET","PO
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

开源魔兽世界私服搭建wow1.12

项目源码: https://github.com/geektcp/elf-wow 觉得有用就赞一个 一、背景 60魔兽是最经典的版本,遗憾的是60年代时还在大学读书,穷得很,买不起点卡,后来工作了,大概70年代开始玩的。 多年以前,玩游戏时,一直非常期望能够自己控制角色的属性级别,得到各种装备。 多年以后,在这款纯粹的开源服务器问世后,终于如愿以偿。 让我们重温经典吧。 二、部署服务器端 1、版本要求 编译服务端有版本要求: os centOS 6.5 wow mangos-classic g
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

使用redis的zset实现高效分页查询(附完整代码)

一、需求 移动端系统里有用户和文章,文章可设置权限对部分用户开放。现要实现的功能是,用户浏览自己能看的最新文章,并可以上滑分页查看。 二、数据库表设计 涉及到的数据库表有:用户表TbUser、文章表TbArticle、用户可见文章表TbUserArticle。其中,TbUserArticle的结构和数据如下图,字段有:自增长主键id、用户编号uid、文章编号aid。 自增长主键和分布式增长主键如何选: TbUserArticle的主键是自增id,它有个缺陷是,当你的数据库有主从复制时,主从库的
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

3-27 【视频讲解】调用硬件、第三方服务以及平台交互、通知

语音搜索这块。 如何调用硬件与第三方服务 构建与集成Native SDK/模块? 课程里面会做详细的介绍。 比如语音搜索的这个模块其实就是集成了Native的SDK。并且我们的Native SDK和flutter进行交互。 结束
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

windows快捷键-小结

windows快捷键 快捷键 功能 等效 ctrl + C 复制 ctrl + insert ctrl + V 黏贴 shift + insert ctrl + Z 撤销 ctrl + S 保存 ctrl + X 剪切 ctrl + F 查找内容 win + D 显示/还原桌面 win + E 打开计算机 win + L 锁屏 win + R 打开运行对话框 win + Pause break 打开计算机属性 ctrl + win + F 查找计算机 win + M 最小化所有窗口 shift
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

两个SQL查询,横向合并为一个查询结果

第一条sql: select unit,count(*)as number from archives_management group by unit 第二条sql: select fine_units,count(*) as fine_number from fine group by fine_units 注:两条sql 分别查询结果如下图 要求生成如下格式: unit number fine_number 艾XXXXXXX 1 1 奥XXXXXXXX 1 0 北京XXXXXXX 2 0
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

卸载MySQL(此文转自,仅作学术参考)

第一步:在控制面板上,进入程序界面。把mysql的软件尽量卸载,不能卸载先暂时放着。 第二步:删除文件夹:program files文件夹里的MySQL文件夹,如果不能删除用360强力删除,并且要勾选不能恢复文件。 隐藏文件夹 programData,这个要在文件夹选项里显示隐藏文件,找到MySQL文件夹。操作与之前的一样。 第三步:win+R快捷键。输入regedit。进入注册表。找到HKEY_LOCAL_MACHINE/SYSTEM,有三个文件夹ControlSet001、ControlS
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

3-28 本章小结

结束
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

React32深度刨析redux中间件给我们带来的帮助

由于redux reducer默认只支持同步,实现异步任务或者延时任务时,我们就要借助中间件的支持了 没使用中间件时的redux数据流 使用了中间件middleware之后的redux数据流 两个中间件: redux-thunk 支持我们reducer在异步操作结束后自动执行 安装 redux-thunk npm install redux-thunk --save redux-logger 打印日志记录协助本地调试 安装redux-logger npm install redux-logge
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

iOS底层学习-day-5

iOS底层学习-day-5前言-OC语法篇问题KVC的理解通过KVC修改属性会触发KVO?Categ
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

iOS底层学习-day-6

iOS底层学习-day-6前言-OC语法篇问题OC的三种对象的介绍Runtime中的 objc_ge
分类: 其他 发布时间: 01-12 23:17 阅读次数: 0

iOS底层学习-day-7

iOS底层学习-day-7前言-OC语法篇问题关联对象实现关联对象 技术的核心对象有block前言-
分类: 其他 发布时间: 01-12 23:16 阅读次数: 0