作者:柒号华仔
个人主页:欢迎访问我的主页
个人信条:星光不问赶路人,岁月不负有心人。
个人方向:专注于5G领域,同时兼顾其他网络协议,编解码协议,C/C++,linux等,感兴趣的小伙伴可以关注我,一起交流。
谈到微服务架构,不可避免的会先想起单体架构和分布式架构。
单体架构是指将所有的功能、模块、数据库等耦合在一个应用中,称之为单体架构应用,理所当然单体架构应用部署在一台服务器上。由于单体架构所有功能模块耦合在一起,若出现问题将导致整个系统应用无法工作,维护成本高。
分布式结构是将一个大的系统进行拆分,将应用和数据等分开部署到不同的服务器上,不同服务器之间通过网络进行通信,体现的更多是物理上的分布部署。实际上分布式架构已经具有了微服务的特性,但它的耦合性强,每个模块缺一不可,另外构建成本高。
微服务体现在两个词,第一是"微",第二是"服务"。微说明了小,简单,在这里我又想到了“单纯”一词,单一纯粹。服务是区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通。每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。
微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上“高内聚”。
随着微服务架构的发展普及,加上5G技术的演进和发展需求,5GC将云原生的微服务架构引入,构建了面向业务的SBA架构,实现了低耦合+高内聚的技术升级。
在面向业务的5G网络架构中,将原本的控制面功能进行了融合和统一,同时控制面功能也分解成为多个独立的网络服务,这些独立的网络服务可以根据业务需求进行灵活的组合。每个网络服务和其他服务在业务功能上解耦,并且对外提供同一类型的服务化接口,向其他调用者提供服务,将多个耦合接口转变为同一类型的服务化接口,可以有效地减少接口数量,并统一服务调用方式,进而提升了网络的灵活性。
- NSSF:Network Slice Selection Function 网络切片选择功能
- NEF:Network Exposure Function 网络能力开放功能
- NRF:Network Repository Function 网络存储功能
- PCF:Policy Control Function 策略控制功能
- UDM:Unified Data Management 通用数据管理
- AF:Application Function 应用功能
- AUSF:Authentication Server Function 鉴权服务功能
- AMF:Access and Mobility Management Function 接入与移动性管理功能
- SMF:Session Management Function 会话管理功能
- SCP:Service Communication Proxy 服务通信代理
- UE:User Equipment 用户终端
- RAN:RadioAccess Network 无线接入网
- UPF:User Plane Function 用户面功能
- DN:Data Network 数据网络
在SBA架构中,每个核心网网元的接口统一命名为“N +小写英文功能名缩写”。例如,网络切片选择功能NSSF的接口为Nnssf;5G核心网网元的服务操作名称以接口名开始,例如,Nnssf_NSSelection表示NSSF的网络切片选择操作。除了统一的服务化接口外,5G网络仍然保留了少量的参考点接口,如下:
相对于3G/4G的参考点设计,服务化架构使5G核心网各网元的功能模块化,接口统一化,结构简单化以及去中心化。
微服务架构是一种架构,更是一种理念,任何先进的理念都将被不同行业和领域融合升级,相互推动,如同4G带来了移动互联网时代,移动互联网的快速发展带来的万物互联需求推动了5G的发展。时至今日,5G上云已经被越来越多的讨论,把传统的单体设备的设计、开发、发布、部署、运维向云上迁移,在边缘计算,网元云部署,海量数据存储和处理等方面,云原生与5G的关系将越来越密切。
一、快速开发框架XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展2.MVPArms一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架(包括Mvp、 Dagger2、RxJava、RxAndroid、Rxlifecycle、RxCache、RxPermissions、RxErroHandler、Retrofit、Okht
将hadoop-1.1.2.tar.gz放到/usr/local目录下 执行tar
关于C++ 显然你已经知道编程的含义,接下来我们要做的就是开始学习C++。那么什么是C++,为什么我们要学习C++。什么是C++ C++ 这个词在中国大陆的程序员圈子中通常被读做 "C 加加",而西方的程序员通常读做 "see plus plus"。C++是一种计算机编程语言。她是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言,是现存的上百种计算机语言中一种
公众号要具备开发能力的话,需要在微信公众号平台注册,申请,审核,每年会产生一定的费用,开发阶段,我们可以使用微信公众号的接口测试账号,直接体验和测试公众平台所有高级接口1、接口测试号https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login使用我们自己的微信扫码登录即可2、登录接口测试号登录上来之后,我们就能看到我们测试号的 appid,appsecret 等信息,接口配置信息等3、关注接口测试号向下滑动,可以看到一个二维
基本概念看socketio官方文档 http://socket.io/docs/rooms-and-namespaces/namespace 和room的概念其实用来同一个服务端socket多路复用的。namespace,room和socketio的关系如下。socket会属于某一个room,如果没有指定,那么会有一个default的room。这个room又会属于某个namespace,
Linux 处理内存分配通过创建一套固定大小的内存对象池. 分配请求被这样来处理, 进入一个持有足够大的对象的池子并且将整个内存块递交给请求者. 驱动开发者应当记住的一件事情是, 内核只能分配某些预定义的, 固定大小的字节数组.如果你请求一个任意数量内存, 你可能得到稍微多于你请求的, 至多是 2 倍数量. 同样, 程序员应当记住 kmalloc 能够处理的最小分配是
思路:(具体参考《算法艺术与信息学竞赛》)1,先化简均方差公式,可以看出,只需要让每个分割后的矩形的总分的平方和尽量小,即可使均方差最小。2,考虑左上角坐标为(x1,y1),右下角坐标为(x2,y2)的棋盘,设它的总和为s[x1,y1,x2,y2]切割k次以后得到k+1块
今天我来介绍一下工业镜头的相关知识。在前些章节,我介绍了关于光源的知识,没看的同学可以前往观看机器视觉学习之光源--硬件知识扫盲必看如果工业相机没有镜头,那么Sensor感光就是一片噪点,聚焦不在物体上。镜头的作用是收集反射在物体表面的光并将其聚焦在CCD/CMOS上面。镜头就好比人的眼睛一样,人要看清楚一个物体,需要先构图聚焦到某一个物体上,晶状体相当于镜头,光线通过晶状体映射在眼球后部的视网膜...
我们今天主要介绍的是Windows Server2016 安装及配置DFS实现数据复制,那什么是DFS呢?DFS就是Microsoft文件分布系统 是一个网络服务器组件,它能够使你更容易地在网络上查询和管理数据。分布式文件系统是将分布于不同电脑上的文件组合为单一的名称空间,并使得在网络上建立一个单一的、层次化多重文件服务器和服务器共享的工作更为方便的途径,使用户更加容易访问和管理物理上跨网络分布...
C语言练习题目录索引题目:编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。例如,输入“{()wqwq6}{{{}}}”判断里面的花括号匹配,返回1;输入“{{{}}}{”判断里面的花括号不匹配,返回0。解题思路:设置一个计数器count,当读取到’{‘时count++,当读取到’}’时,count–。用一个while循环遍历整个字符串,最后count为0时,则花
虽然是同一个域名,只要请求方与响应体的协议、域名、端口不一致都会存在跨域问题。虽然后端配置了允许跨域访问、前端也关闭了vue的安全策略,但是在文件下载这里,仍然不能正常下载。第一:在后端的响应体中设置允许跨域的头,如下:private void genCode(HttpServletResponse response, byte[] data) throws IOException { response.reset(); response.addHeader("
题目描述现在有个java的加解密程序,需要改成php的方法来实现现在有对方的java加密程序 我用openssl得到的结果不一样题目来源及自己的思路JAVA 示例中:public static byte[] generateAesKey(int keysize, String key) {try {KeyGenerator keyGenerator = KeyGenerator.getInstan...