首页 文章 精选 留言 我的

精选列表

搜索[cloud],共10000篇文章
优秀的个人博客,低调大师

SAP Cloud for Customer的Container应用设计原理

来自Jerry的同事,Yang Joey。 相信大部分C4C的UI developer包括我刚开始的时候都会比较好奇我们平时写的javascript代码是如何运行在移动设备上的,同样的,我也对这个问题十分感兴趣。于是,以安卓为例子,我把我们发布到安卓应用市场的app解压出来研究了一下。 上图是一个cordova的总体框架的描述,可以看到cordova主要由两部分构成。第一部分:Cordova Application是Cordova框架独立于不同手机操作系统的一个封装层。具体包括1)Web app(包括具体的app的HTML/JS/CSS代码等);2)Cordova框架已经封装好的核心插件(如相机、存储等系统调用),这块是Cordova的核心部分。当然,开发者也可以基于它的插件体系,扩展出新的插件;第二部分:Mobile OS就是具体的

优秀的个人博客,低调大师

集成源码深度剖析:Fescar x Spring Cloud

Fescar 简介 常见的分布式事务方式有基于 2PC 的 XA (e.g. atomikos),从业务层入手的 TCC( e.g. byteTCC)、事务消息 ( e.g. RocketMQ Half Message) 等等。XA 是需要本地数据库支持的分布式事务的协议,资源锁在数据库层面导致性能较差,而支付宝作为布道师引入的 TCC 模式需要大量的业务代码保证,开发维护成本较高。 分布式事务是业界比较关注的领域,这也是短短时间 Fescar 能收获6k Star的原因之一。Fescar 名字取自 Fast & Easy Commit And Rollback ,简单来说Fescar通过对本地 RDBMS 分支事务的协调来驱动完成全局事务,是工作在应用层的中间件。主要优点是相对于XA模式是性能较好不长时间占用连接资源,相对于

优秀的个人博客,低调大师

自定义jwt实现spring cloud nosession

JWT实现在网关模块,网关的路由是默认配置。 jwt 生成、验证依赖 io.jsonwebtokenjjwt0.7.0 最核心的配置是在spring security中加入我们token校验机制的fiter:JwtAuthenticationTokenFilter protectedvoiddoFilterInternal( HttpServletRequestrequest, HttpServletResponseresponse, FilterChainchain)throwsServletException,IOException{ StringauthHeader=request.getHeader(this.tokenHeader); if(authHeader!=null&&authHeader.startsWith(tokenHead)){ StringauthToken=authHeader.substring(tokenHead.length());//Thepartafter"Bearer" Stringusername=jwtTokenUtil.getUsernameFromToken(authToken); logger.info("checkingauthentication"+username); if(username!=null&&SecurityContextHolder.getContext().getAuthentication()==null){ UserDetailsuserDetails=this.userDetailsService.loadUserByUsername(username); if(jwtTokenUtil.validateToken(authToken,userDetails)){ UsernamePasswordAuthenticationTokenauthentication=newUsernamePasswordAuthenticationToken( userDetails,null,userDetails.getAuthorities()); authentication.setDetails(newWebAuthenticationDetailsSource().buildDetails( request)); logger.info("authenticateduser"+username+",settingsecuritycontext"); SecurityContextHolder.getContext().setAuthentication(authentication); } } } chain.doFilter(request,response); } 在看我们的spring security 配置 protectedvoidconfigure(HttpSecurityhttpSecurity)throwsException{ httpSecurity //由于使用的是JWT,我们这里不需要csrf .csrf().disable() .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() //基于token,所以不需要session .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() .authorizeRequests() //.antMatchers(HttpMethod.OPTIONS,"/**").permitAll() //允许对于网站静态资源的无授权访问 .antMatchers( HttpMethod.GET, "/", "/*.html", "/favicon.ico", "/**/*.html", "/**/*.css", "/**/*.js" ).permitAll() .antMatchers("/auth/**").permitAll() .anyRequest().authenticated(); //添加JWTfilter httpSecurity .addFilterBefore(authenticationTokenFilterBean(),UsernamePasswordAuthenticationFilter.class); //禁用缓存 httpSecurity.headers().cacheControl(); } 获取token POST http://localhost:8080/auth Content-Type:application/json {"username":"1234","password":"1234"} --- 结果 { "token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMjM0IiwiY3JlYXRlZCI6MTUwMzQxMzMwODkxOCwiZXhwIjoxNTA0MDE4MTA4fQ.jQc5MRdgKfi5ds1N0ZSsxkunQQVkFuGJ7Giv1_JrjTiKsu3h7UwE8vjU5wVPaipM_zkbHaMpRqXvF__ci5p7aw" } 访问资源 GET http://localhost:8080/user-service/bizUser/getUserScore Content-Type:application/json Authorization:BearereyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMjM0IiwiY3JlYXRlZCI6MTUwMzQxMzMwODkxOCwiZXhwIjoxNTA0MDE4MTA4fQ.jQc5MRdgKfi5ds1N0ZSsxkunQQVkFuGJ7Giv1_JrjTiKsu3h7UwE8vjU5wVPaipM_zkbHaMpRqXvF__ci5p7aw --- 结果 [ { "id":11, "username":"123", "password":"456", "scoreList":[ { "id":1, "score":100 } ] } ] 不加认证token { "timestamp":1503413947608, "status":401, "error":"Unauthorized", "message":"手动滑稽( ´-ω・)▄︻┻┳══━一", "path":"/user-service/bizUser/getUserScore" } 参考https://github.com/wpcfan/spring-boot-tut 详细整合源码:springcloud-zuul-jwt 和 springboot-mybatis-plus

优秀的个人博客,低调大师

Spring Cloud 之 Consul 与 Consul 服务剔除

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/83270624 1.简介 Consul有多个组件,但总体而言,它是基础架构中的一款服务发现和配置的工具。 它提供了几个关键功能: (1)服务发现:Consul client 可以提供服务,例如api或mysql,也可以使用Consul client来发现指定服务的提供者。 使用DNS或HTTP,应用程序可以轻松找到他们所依赖的服务。 (2)健康检查:Consul client 可以提供任何数量的健康检查,或者与给定的服务(“Web服务器是否返回200 OK”),或与本地节点(“内存利用率是否低于90%”)相关联。 可以使用此信息来监控集群运行状况,服务发现组件使用此信息将流量从有问题的主机中移除出去。 (3)KV Store:应用程序可以使用Consul的分层键/值存储,包括动态配置,功能标记,协调,leader选举等等。 简单的HTTP API使其易于使用。 (4)多数据中心:Consul支持多个数据中心。 这意味着Consul的用户不必担心构建额外的抽象层以扩展到多个区域。 Consul旨在对DevOps社区和应用程序开发人员友好,使其成为现代化,弹性基础架构的完美选择。 2.优点 consul由GO语言开发,是专门用来做服务发现的,具有服务注册、服务必现、服务检测、UI管理、命令管理、API管理、数据存储等;且spring在此基础上做了封装,优先采用; 3.踩坑点 1)背景:使用springcloud项目久了,就发现了consul作为注册中心的一大缺点,不利于使用,踩了不少坑,注册中心内的服务许手动删除,不然历史注册的已停止服务的错误节点就影响使用,比如如下情况: 开启springboot项目老是有个僵尸在,把所有java程序都关了还存在,可是压根都没起服务,更加没设置过那种端口 还比如现在明明起了一个服务第一个,却有好几个服务在线,都是我的ip 进过深入研究发现 ----注册中心内的服务许手动删除 2)手动删除方法: 删除无效服务: http://ip:8500/v1/agent/service/deregister/服务名称 sic-user-9003这种为服务名称 删除无效节点: http://ip:8500/v1/agent/force-leave/节点名 4b36b27317a0这种为节点名(也就是容器id) 截图如下: 将不定期更新资源,欢迎持续关注 想获得更多的学习知识请关注微信公众号:西北码农或扫下方二维码

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册