0%

springcloud容器

springCloud中不只存在了一个Spring容器,会进行多次创建Spring容器,来形成父子容器

  • BootStrap上下文:由SpringCloud监听器创建,用来初始化SpringCloud上下文,该容器是祖先容器
  • SpringBoot上下文:由SpringBoot创建
  • 微服务配置上下文:Feign和Ribbon配置类对应的上下文,由配置容器抽象工厂NamedContextFactory创建,用于容器隔离

BootStrap上下文

用于初始化bootstrap.properties(yml)配置文件的,是springcloud中BootstrapApplicationListener监听器在监听ApplicationEnvironmentPreparedEvent来进行创建的

由该代码触发

1
listeners.environmentPrepared(environment);

SpringBoot上下文

也就是平时用的最多的spring容器

微服务配置上下文

主要的实现类有FeignContext、LoadBalancerClientFactory、SpringClientFactory

MySQL count

在使用count进行数据统计行数时,有时候会使用count(*),有时候会使用count(1),有时候会使用count(列名),那么这些有什么不同呢

当使用列名作为参数时,count函数会自动忽略null值,而使用*或者常量时,就会包含null值

1
2
3
4
select count(*),count(1),count(source) from doc  

count(*) count(1) count(source)
188 188 2

文件上传

对于javaweb的文件上传大家应该都有一定了解,也知道文件上传时用的请求格式是什么?那么spring是如何进行解析文件上传请求的呢?

Spring中有一个MultipartResolver接口来专门解析multipart请求中的内容,其有两个实现类

  • StandardServletMultipartResolver:依赖于Servlet3.0对multipart的支持,如果没有使用Servlet3.0的容器,那么只能使用CommonsMultipartResolver

  • CommonsMultipartResolver:使用 Commons FileUpload解析multipart请求

    1
    2
    3
    4
    <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    </dependency>
阅读全文 »

Docker简介

Docker是一个轻量级容器技术,是直接运行在操作系统之上的,而不是运行在虚拟机中,通过namespace实现了虚拟机技术的资源隔离,通过cgroup实现资源限制,通过写时复制实现了高效的文件操作

Docker支持将软件编译成一个镜像,在这个镜像里做好对软件的各种配置,然后进行发布,使用者可以运行这个镜像,运行中的镜像就被称之为容器

运维人员可以直接使用这个镜像,将其发布到任何装有Docker的机器上,可以有效地解决微服务架构下服务粒度细、服务数量多所导致的开发环境搭建、部署以及运维成本高的问题

阅读全文 »

CDN系统

CDN的好处

  • 缓解源服务器访问压力
  • 解决跨地区、跨运营商网络、速度慢等互联互通难题
  • 解决网站热点、重点事件突发流量的问题
  • 合理利用互联网资源,解决中小企业租用虚拟服务器慢问题(虚拟机、云主机共用、加速访问)
  • 解决加速问题(静态图片、静态文本、静态视频)
  • 全面预防单点故障
  • 改善用户的访问质量和体验
  • 提供全面、准确和详细的数据统计
  • 有效地防止黑客攻击源站
阅读全文 »